#define _CRT_SECURE_NO_WARNINGS



#include		<stdio.h>
#include		<stdlib.h>
#include		<time.h>
#include		<math.h>
#include		<string.h>
#include		<ctype.h>
#include        <assert.h>
#include		<windows.h>

typedef int (*ty_p)(int, int);

#define _AAA(ty_pt)  int(*ty_pt)(int,int)


int Add(int x, int y)
{
	return x + y;
}

int main()
{
	//NULL
	int (*ty_p1)(int, int) = Add;
	ty_p ty_p2 = Add;

	_AAA(ty_p3) = Add;


	printf("%p\n", Add);
	printf("%p\n", &Add);
	printf("%p\n", ty_p1);
	printf("%p\n", ty_p2);
	printf("%p\n", ty_p3);

	int x = 20;
	int y = 40;
	int z = 0;


	z = ty_p1(x, y);
	printf("%d\n", z);
	z = 0;
	z = ty_p2(x, y);
	printf("%d\n", z);
	z = 0;
	z = ty_p3(x, y);
	printf("%d\n", z);


	return 0;
}